This invention relates in general to digital communication systems that include a digital prefilter in conjunction with a Decision Feedback Sequence Estimation (DFSE) equalizer, and more particularly, to a system and method for computing the coefficients of such a prefilter.
Digital wireless communication systems require equalization to compensate for intersymbol interference (ISI) resulting from time dispersion or delay spread in the channel. Typically, a non-linear equalizer, such as a Maximum Likelihood Sequence Estimation (MLSE) equalizer, is used to provide coherent demodulation, and thus, compensation for ISI, in such digital wireless communication systems. However, while a MLSE equalizer performs adequately, it is complex to implement.
Other equalizers have also been used to provide compensation for ISI. For example, a Decision Feedback Sequence Estimation (DFSE) equalizer has been used in place of the MLSE equalizer. While the complexity of implementing the DFSE equalizer can be substantially lower than the complexity of implementing the MLSE equalizer, the DFSE equalizer alone provides suboptimal results compared to the MLSE equalizer.
A finite impulse response (FIR) prefilter may be used with the DFSE equalizer to improve performance. The impulse response of the prefilter is determined by coefficients that are calculated by complex mathematical equations. While a DFSE equalizer with a prefilter can perform very close to the MLSE equalizer, the complexity of the mathematical equations to determine the coefficients of the prefilter can offset the complexity savings afforded by the DFSE equalizer.
In some communication systems the receiver operates on a burst-by-burst basis, i.e. the receiver first collects a burst of received samples, and then starts processing this collected burst. In this type of system, the receiver typically equalizes part of the burst xe2x80x9cforward in timexe2x80x9d and it equalizes the other part of the burst xe2x80x9cbackward in time.xe2x80x9d Two different prefilters must then be used, one for forward equalization and one for backward equalization. Multiple prefilters along with the corresponding impulse response calculations reduce the complexity savings afforded by the DFSE equalizer.
The DFSE equalizer will now be explained. The DFSE equalizer can be best explained as an approximation of a well-known MLSE equalizer. The MLSE equalizer considers various hypotheses for the transmitted symbol sequence, and with a model of the dispersive channel, determines which hypothesis best fits the received samples. This is efficiently realized using the Viberbi algorithm. This equalization technique is well known to those skilled in the art, and can be found in J. C. Proakis, Digital Communication, McGraw-Hill (1989).
The conventional MLSE equalizer can be explained by a simple example. Suppose the transmitter transmits a symbol stream s(n), which takes on values xe2x80x9c+1xe2x80x9d or xe2x80x9cxe2x88x921xe2x80x9d corresponding to bit values 0 or 1 respectively. This stream is modulated using binary-shift keying (BPSK). At the receiver, the received signal is filtered, amplified, and mixed down using I and Q carriers, then sampled once every symbol period (T), giving a received signal stream r(n). In this example, an intervening channel consists of three rays, a main ray and two echoes, where the first echo arrives T second later, and the second echo arrives 2T seconds later. The received signal at baseband can then be modeled as:
r(n)=c0s(n)+c1s(nxe2x88x921)+c2s(nxe2x88x922)+xcex7(n)xe2x80x83xe2x80x83(1)
where c0, c1 and c2 are complex channel tap values, and xcex7(n) is additive noise or interference.
In the MLSE equalizer, at iteration n, there are four different previous xe2x80x9cstatesxe2x80x9d (0, 1, 2, and 3), corresponding to the four possible values for the two most recent previous symbols:
1. (s(nxe2x88x921)=xe2x88x921, s(nxe2x88x922)=xe2x88x921)⇄Previous State=0
2. (s(nxe2x88x921)=xe2x88x921, s(nxe2x88x922)=+1)⇄Previous State=1
3. (s(nxe2x88x921)=+1, s(nxe2x88x922)=xe2x88x921)⇄Previous State=2
4. (s(nxe2x88x921)=+1, s(nxe2x88x922)=+1)⇄Previous State=3.
Associated with each previous state there is an accumulated metric, accumulated from previous iterations, giving rise to accumulated metrics:
(A0(nxe2x88x921), A1(nxe2x88x921), A2(nxe2x88x921), A3(nxe2x88x921)).
There are also four current states corresponding to four possible values for the 2-tuple [s(n), s(nxe2x88x921)]. Each possible paring of a previous state with a current state corresponds to a hypothetical 3-tuple sequence [sh(n), sh(nxe2x88x921), sh(nxe2x88x922)]. For each of these hypotheses, there is a corresponding hypothesized received signal value at time n:
rh(n)=c0sh(n)+c1sh(nxe2x88x921)+c2sh(nxe2x88x922).xe2x80x83xe2x80x83(2)
Furthermore, for each of these hypothesis, there is a corresponding xe2x80x9cbranchxe2x80x9d metric given by:                                           M            h                    ⁡                      (            n            )                          =                  xe2x80x83                ⁢                              "LeftBracketingBar"                                          r                ⁡                                  (                  n                  )                                            -                                                r                  h                                ⁡                                  (                  n                  )                                                      "RightBracketingBar"                    2                                    (        3        )                                          xe2x80x83                ⁢                  =                      xe2x80x83                    ⁢                                                    "LeftBracketingBar"                                                      r                    ⁡                                          (                      n                      )                                                        -                                                            ∑                                              k                        =                        0                                            2                                        ⁢                                          xe2x80x83                                        ⁢                                                                  c                        k                                            ⁢                                                                        s                          h                                                ⁡                                                  (                                                      n                            -                            k                                                    )                                                                                                                    "RightBracketingBar"                            2                        .                                              (        4        )            
In this example, there are eight possible hypothetical sequences, corresponding to eight different pairings of a previous state and a current state.
In an MLSE equalizer for each xe2x80x9cnxe2x80x9d, eight branch metrics must be computed according to equation (4). There is one branch metric corresponding to each possible value of the 3-tuple [sh(n), sh(nxe2x88x921), sh(nxe2x88x922)]. Since each element of this 3-tuple has two possible values, there are 8=23 possible 3-tuples.
The DFSE equalizer can be best explained by continuing the above example with three channel taps (c0, c1, c2). In a DFSE equalizer, the three channel taps are usually divided into two parts: an MLSE part consisting of the first few-taps (e.g. c0 and c1), and a DFE part consisting of the other trailing taps (e.g. c2). Next, a trellis corresponding only to the MLSE taps (in this example the state will have just one element) is constructed. The branch metric of the DFSE equalizer at time n is:
dMh(n)=|r(n)xe2x88x92c0sh(n)xe2x88x92c1sh(nxe2x88x921)xe2x88x92c2{overscore (s)}(nxe2x88x922)|2xe2x80x83xe2x80x83(5)
where [sh(n), sh(nxe2x88x921)] come from the hypothesized paring of the previous state and the current state, but {overscore (s)}(nxe2x88x922) denotes the decided symbol obtained from the path history of the previously hypothesized state.
Comparing the branch metric of the DFSE (equation (5)) to the branch metric of the MLSE (equation (4)), the MLSE equalizer at time n hypothesizes all possible values of the 3-tuple [sh(n), sh(nxe2x88x921), sh(nxe2x88x922)], while the DFSE equalizer. at time n only hypothesizes all the possible values of the 2-tuple [sh(n), sh(nxe2x88x921)]. Hence, the MLSE equalizer computes eight-branch metrics for each n, while the DFSE equalizer computes only four-branch metrics for each n. The DFSE equalizer is approximately one half the complexity of the MLSE equalizer in this example. Correspondingly, the performance of the DFSE equalizer is also less than the MLSE equalizer.
In this example, for the performance of the DFSE equalizer to be close to the performance of the MLSE equalizer, it is desirable to make |c2|2 as small as possible. If c2=0, then the DFSE equalizer is equivalent to the MLSE equalizer. More generally, if the intervening channel has coefficients             {              c        i            }              i      =      0                      L        c            -      1        ,
then the DFSE equalizer partitions these Lc coefficients into two parts: the MLSE part consisting of the leading LMLSE coefficients (i.e.       (          i      .      e      .              xe2x80x83            ⁢                        {                      c            i                    }                          i          =          0                                      L            MLSE                    -          1                      )    ,
and the DFE part consisting of the trailing coefficients (i.e.       (          i      .      e      .              xe2x80x83            ⁢                        {                      c            i                    }                          i          =                      L            MLSE                                                L            c                    -          1                      )    .
The resulting branch metric for time n for the DFSE equalizer is:                               d          ⁢                      xe2x80x83                    ⁢                                    M              h                        ⁡                          (              n              )                                      =                                            "LeftBracketingBar"                                                r                  ⁡                                      (                    n                    )                                                  -                                                      ∑                                          k                      =                      0                                                                                      L                        MLSE                                            -                      1                                                        ⁢                                      xe2x80x83                                    ⁢                                                            c                      k                                        ⁢                                                                  s                        h                                            ⁡                                              (                                                  n                          -                          k                                                )                                                                                            -                                                      ∑                                          k                      =                                              L                        MLSE                                                                                                            L                        c                                            -                      1                                                        ⁢                                      xe2x80x83                                    ⁢                                                            c                      k                                        ⁢                                                                                            s                          _                                                h                                            ⁡                                              (                                                  n                          -                          k                                                )                                                                                                        "RightBracketingBar"                        2                    .                                    (        6        )            
Since only       xe2x80x83    ⁢            {              c        i            }              i      =      0                      L        MLSE            -      1      
are hypothesized, the number of possible branch metrics that need to be computed for each n is only 2LMLSE for the DFSE equalizer but 2Lc for the MLSE equalizer.
In a typical implementation of the DFSE equalizer, the received signal, r(n), is first passed through a FIR prefilter having an impulse response             {              f        ⁢                  (          n          )                    }              n      =      0                      L        f            -      1        .
A composite baseband channel which is the channel now seen by the DFSE equalizer is expressed as g(n)=c(n)*f(n). A signal rxe2x80x2(n) representing the received signal after passing through the prefilter can be expressed in terms of the transmitted symbols, s(n)xe2x80x2s, according to:                                                         r              xe2x80x2                        ⁡                          (              n              )                                =                                                    ∑                                  k                  =                  0                                                                      L                    h                                    -                  1                                            ⁢                              xe2x80x83                            ⁢                                                s                  ⁡                                      (                                          n                      -                      k                                        )                                                  ⁢                                  g                  ⁡                                      (                    k                    )                                                                        +                          v              ⁡                              (                n                )                                                    ,                            (        7        )            
where v(n)=w1(n)*f(n). The DFSE equalizer then operates on rxe2x80x2(n), and the intervening channel seen by the DFSE equalizer is now             {              g        ⁢                  (          n          )                    }              n      =      0                      L        h            -      1        .
The goal in computing the prefilter f(n) is to get a composite channel, g(k)xe2x80x2s, such that the trailing taps   (            {              g        ⁢                  (          n          )                    }              n      =              L        MLSE                            L        h            -      1      
are the trailing taps of g(k)) are as small as possible. For the DFSE to perform well, it is also desirable that |F(xcfx89)| (i.e. the magnitude of the Fourier transform of the prefilter f(n)) be constant for all frequencies xcfx89 (i.e. we would like |F(xcfx89)|≈1 for all xcfx89).
One method for computing the impulse response of the prefilter f(n) for the DFSE is disclosed by S. Ariyavisitakul, J. H. Winters, N. R. Sollenberger, Joint Equalization and Interference Suppression for High Data Rate Wireless Systems, Proceedings of IEEE Vehicular Technology Conference, Houston, 1999. The method involves solving a system of Lf linear equations (where Lf is the length of the FIR prefilter f(n)). Solving this system of equations requires approximately 2xc3x97Lf3 operations. For each burst of the received samples, the coefficients for two such prefilters need to be computed (one for equalizing xe2x80x9cforward in timexe2x80x9d and another for equalizing xe2x80x9cbackward in timexe2x80x9d). In summary, this method requires approximately 4xc3x97Lf3 operations.
Accordingly, there is a need for a receiver system and method that provides a low complexity mechanism for computing the impulse response (i.e. coefficients) of the prefilter used in the DFSE equalizer. There is a further need for such a receiver system and method that avoids performing two prefilter computations per burst (one computation for the xe2x80x9cforward equalizationxe2x80x9d, and one computation for the xe2x80x9cbackward equalizationxe2x80x9d).
The present inventions meets these needs by providing a receiver system having a prefilter and a DFSE equalizer in which the impulse response of the prefilter is computed relatively easily. A channel estimate is determined in response to signals received by the receiver system. The channel estimate may include a forward channel estimate and a backward channel estimate. Roots of a z-transform of the forward channel estimate and roots of a z-transform of the backward channel estimate are determined. Those roots of the z-transform of the forward channel estimate having a magnitude greater than one are used to form a z-transform of a forward impulse response of the prefilter while those roots of the z-transform of the backward channel estimate having a magnitude greater than one are used to form a z-transform of a backward impulse response of the prefilter. Forward prefilter coefficients for the prefilter are computed based on the z-transform of the forward impulse response of the prefilter and backward prefilter coefficients for the prefilter are computed based on the z-transform of the backward impulse response of the prefilter. A forward impulse response of a forward composite channel are computed based on the forward prefilter coefficients while a backward impulse response of a backward composite channel are computed based on the backward prefilter coefficients.
According to a first aspect of the present invention, a method of computing a prefilter comprises estimating a channel estimate of a signal received by a receiver. Roots of a z-transform of the channel estimate are determined. A z-transform of an impulse response of the prefilter is formed based on the roots of the z-transform of the channel estimate. Prefilter coefficients of the prefilter are computed based on the z-transform of the impulse response of the prefilter.
According to another aspect of the present invention, a method of computing a prefilter comprises estimating a forward channel estimate and a backward channel estimate of a signal received by a receiver. Roots of a z-transform of the forward channel estimate are determined. Roots of a z-transform of the backward channel estimate are determined. A z-transform of a forward impulse response of the prefilter is formed based on the roots of the z-transform of the forward channel estimate. A z-transform of a backward impulse response of the prefilter is formed based on the roots of the z-transform of the backward channel estimate. Forward prefilter coefficients of the prefilter are formed based on the z-transform of the forward impulse response of the prefilter. Backward prefilter coefficients of the prefilter are computed based on the z-transform of the backward impulse response of said prefilter.
According to yet another aspect of the present invention, a method of computing a prefilter comprises estimating a channel estimate of a signal received by a receiver. Roots of a z-transform of the channel estimate are determined. A z-transform of a forward impulse response of the prefilter is formed based on the roots of the z-transform of the channel estimate having a magnitude greater than one. A z-transform of a backward impulse response of the prefilter is formed based on the roots of the z-transform of the channel estimate having a magnitude less than or equal to one. Forward prefilter coefficients of the prefilter are computed based on the z-transform of the forward impulse response of the prefilter. Backward prefilter coefficients of the prefilter are computed based on the z-transform of the backward impulse response of the prefilter.
The present invention provides a low complexity mechanism for computing the impulse response (i.e. coefficients) of the prefilter used in the DFSE equalizer. The receiver and method for computing the impulse response of the prefilter avoids the need to perform two prefilter computations per burst (one computation for the xe2x80x9cforward equalizationxe2x80x9d, and one computation for the xe2x80x9cbackward equalizationxe2x80x9d). Other features and advantages of the invention will be apparent from the following description, the accompanying drawings and the appended claims.